1. Field of the Invention
Aspects of the present invention generally relate to a wireless communication system, and in particular, to a data decoding apparatus and method in a communication system for recovering data transmitted through a communication channel.
2. Description of the Related Art
In a digital data communication system, errors may occur in data transmitted through channels. Many error detection and signal recovery mechanisms have been used to detect and recover errors occurring in the transmission.
In general, channel encoding methods are used for error detection and correction, and surplus bits are added to information bits to support error detection and correction in a channel encoding process.
For the channel encoding methods, block encoding and convolution encoding methods are used, and an encoded bitstream is transmitted to a receiver through an additive white Gaussian noise (AWGN) channel and decoded through quantization and decoding by the receiver.
To decode a signal encoded using a convolution encoding method, a sequential decoding method or a Viterbi decoding method is used. The Viterbi decoding method is also called a maximum likelihood (ML) decoding method, and since the Viterbi decoding method has a fixed decoding time different from the sequential decoding method, the Viterbi decoding method can be easily implemented as hardware.
FIG. 1 is a schematic block diagram of a conventional Viterbi decoder. Referring to FIG. 1, the Viterbi decoder includes, as main components, a branch metric calculator (BMC) 11 for outputting branch metrics of input signals analog-to-digital converted and then serial-to-parallel converted, an add-compare-selection (ACS) unit 13 for calculating path metrics for states of a current stage and related state-transition branch metrics from path metrics of previous states and selecting a path having the minimum path metric as a survival path for the states of the current stage, a survival path memory unit 15 for generating decoded data from the survival path calculated by the ACS unit 13, and a path metric memory 17 for storing the path metrics.
Memory management methods for generating the decoded data in the survival path memory unit 15 include a traceback method and a register exchange method.
The traceback method requires a memory for storing a path history for a traceback operation and estimates an information stream by tracing back a survival path using a higher speed clock than a data rate. Since the register exchange method can be easily implemented using a node-serial type memory in systems not requiring high power and uses in general a compact memory, such as static random access memory (SRAM), the register exchange method can be implemented with little hardware. However, it is difficult to use the register exchange method in systems requiring high power due to overhead caused by the use of a high-speed clock.
In the register exchange method, a register bank having a node-parallel structure is used to store survival path information, and since the survival path information is stored in parallel in the register bank, a clock rate which is the same as a data rate can be used. In addition, since the register exchange method uses a parallel structure using the register bank, a relatively high-speed operation compared to the traceback method can be performed. However, if a constraint length increases, the complexity of a register bank network for storing the survival path information also increases.
In addition, if the traceback method and the register exchange method are applied, when a decoding depth increases, the size of hardware for a survival path memory also increases, thereby increasing a delay. In particular, in the traceback method, a clock rate for tracing back a survival path increases.